package config

import (
	"github.com/go-redis/redis"
	"log"
	"partyus_app/global"
)

func initRedis() {
	addr := GlobalConfig.Redis.Addr
	slaveAddr := GlobalConfig.Redis.SlaveAddr
	db := GlobalConfig.Redis.DB
	password := GlobalConfig.Redis.Password

	// 创建 Redis 客户端
	RedisClient := redis.NewClient(&redis.Options{
		Addr:     addr,
		DB:       db,
		Password: password,
	})

	// 测试连接
	_, err := RedisClient.Ping().Result()

	if err != nil {
		log.Fatalf("连接 Redis 主库失败: %v", err)
	}

	global.RedisDB = RedisClient
	log.Println("已连接 Redis 主库")
	log.Println("slaveAddr：", slaveAddr)
	// 从库（可选）
	if slaveAddr != "" {
		RedisSlave := redis.NewClient(&redis.Options{
			Addr:     slaveAddr,
			DB:       db,
			Password: password,
		})

		_, err := RedisSlave.Ping().Result()
		if err != nil {
			log.Printf("Redis 从库连接失败（已忽略）: %v", err)
		} else {
			global.RedisSlaveDB = RedisSlave
			log.Println("已连接 Redis 从库，启用读写分离")
		}
	}
}
